package org.shreker.shan.core.util;

/**
 * 位运算工具类
 */
public class BitUtil {
	
	/**
	 * 添加状态
	 * @param num 原操作数
	 * @param status 要操作的状态
	 * @return 添加状态之后的操作数
	 */
	public static long merge(long num, long status) {
		return num | status;
	}

	/**
	 * 获取指定的数字中有没有对应的状态
	 * @param num 原操作数
	 * @param status 要操作的状态
	 * @return boolean 返回获取指定的数字中有没有对应的状态
	 */
	public static boolean hasStatus(long num, long status) {
		return (num & status) != 0;
	}

	/**
	 * 移除指定的某种状态
	 * @param num 原操作数
	 * @param status 要操作的状态
	 * @return 返回移除的状态之后的原操作数
	 */
	public static long remove(long num, long status) {
		return num ^ status;
	}
	
}
